1.一般链表
图解链表:
链表
实现:
1 | <!doctype html> |
对比:find() findPrevious()
while语句多了条件!(currNode.next==null)
这个能保证remove()调用时候,删除链表中没有的节点,会返回最后一个节点,这样remove()执行没有任何结果,而链表能够正常的显示。find()中不能使用,原理一样,想一想为什么?
2.双向链表
1 | <html> |
这是可以完全运行,但是加上黄色的一句话(从中间随便插入一句)就会出现问题
1 | Conway Russellville C Carlisle Alma |
看链表结构:
1,2,3条线都有,但是从中间插入的时候,会发现缺少4是不行的,于是insert()函数加上这句:
1 | if(newNode.next!=null){ |
就行了。同样书中的删除节点图解,也是知识考虑了在尾部删除
存储一个对象的时候:点对象
1 | <!DOCTYPE html> |
3.循环链表
1 | <html> |